package persistencia.cliente;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import negocio.cv.Titulo;
import persistencia.DACBase;

public class DACTitulo extends DACBase {

	private Titulo titulo;
	private List<Titulo> titulos;
	private CallableStatement clstm;
	private ResultSet rs;
	
	
	
	public DACTitulo(DACBase dacBase) {
		super(dacBase);
		
	}

	public List<Titulo> consultarTitulos(int idTipoEstudio) {

		try {
			titulos = new ArrayList<Titulo>(); 
			clstm = getConn().prepareCall("{call tituloConsultarPorTipoEstudio(?)}");
			clstm.setInt("idTipoEstudio", idTipoEstudio); 
			clstm.execute();
			rs = clstm.getResultSet();			
			while (rs.next()) {
				
				titulo = new Titulo();
				titulo.setIdTitulo(rs.getInt("idtitulo"));
				titulo.setNombre(rs.getString("nombre"));
				titulo.setDescripcion(rs.getString("descripcion"));			
				
				titulos.add(titulo);
			}
			
			rs.close();
			rs = null;
			
			clstm.close();
	        clstm = null;
	  
		}
        catch (SQLException ex) {
		    // handle any errors
		    System.out.println("SQLException: " + ex.getMessage());
		    System.out.println("SQLState: " + ex.getSQLState());
		    System.out.println("VendorError: " + ex.getErrorCode());
		    System.out.println("Error en metodo consultarTitulos()_DacTitulo");
		}
		
	    return titulos;	
	}
	
	public Titulo consultarTitulo(int id) {

		try {			 
			clstm = getConn().prepareCall("{call tituloConsultar(?)}");
			clstm.setInt("id", id); 
			clstm.execute();
			rs = clstm.getResultSet();			
			if (rs.next()) {
				
				titulo = new Titulo();
				titulo.setIdTitulo(rs.getInt("idtitulo"));
				titulo.setNombre(rs.getString("nombre"));
				titulo.setDescripcion(rs.getString("descripcion"));	
			}
			
			rs.close();
			rs = null;
			
			clstm.close();
	        clstm = null;
	
		}
        catch (SQLException ex) {
		    // handle any errors
		    System.out.println("SQLException: " + ex.getMessage());
		    System.out.println("SQLState: " + ex.getSQLState());
		    System.out.println("VendorError: " + ex.getErrorCode());
		    System.out.println("Error en metodo consultarTitulo()_DacTitulo");
		}
		
	    return titulo;	
	}
}
